package org.javaforever.cookieshop.service;

import java.util.List;
import java.util.Set;
import org.javaforever.cookieshop.domain.CustOrderBean;
import org.javaforever.cookieshop.domain.OrderItemBean;
import org.javaforever.cookieshop.domain.PageBean;

public interface CustOrderService{
	public List<CustOrderBean> listAllCustOrders() throws Exception;
	public Boolean updateCustOrder(CustOrderBean custOrder) throws Exception;
	public Boolean deleteCustOrder(Long id) throws Exception;
	public Long addCustOrder(CustOrderBean custOrder) throws Exception;
	public boolean softDeleteCustOrder(Long id) throws Exception;
	public CustOrderBean findCustOrderById(Long id) throws Exception;
	public CustOrderBean findCustOrderByName(String name) throws Exception;
	public List<CustOrderBean> listActiveCustOrders() throws Exception;
	public void deleteAllCustOrders(String ids) throws Exception;
	public void softDeleteAllCustOrders(String ids) throws Exception;
	public Boolean toggleCustOrder(Long id) throws Exception;
	public Boolean toggleOneCustOrder(Long id) throws Exception;
	public List<CustOrderBean> searchCustOrdersByFieldsByPage(CustOrderBean custOrder,Integer pagesize,Integer pagenum) throws Exception;
	public Boolean activateCustOrder(Long id) throws Exception;
	public void activateAllCustOrders(String ids) throws Exception;
	public List<CustOrderBean> searchCustOrdersByFields(CustOrderBean custOrder) throws Exception;
	public Boolean cloneCustOrder(Long id) throws Exception;
	public void cloneAllCustOrders(String ids) throws Exception;
	public Integer countSearchCustOrdersByFieldsRecords(CustOrderBean custOrder) throws Exception;
	public Integer countActiveCustOrderRecords() throws Exception;
	public Boolean assignOrderItemsToCustOrder(Long custOrderId,String orderItemIds) throws Exception;
	public Boolean revokeOrderItemsFromCustOrder(Long custOrderId,String orderItemIds) throws Exception;
	public Set<OrderItemBean> listActiveCustOrderOrderItemsUsingCustOrderId(Long custOrderId) throws Exception;
	public Set<OrderItemBean> listAvailableActiveCustOrderOrderItemsUsingCustOrderId(Long custOrderId) throws Exception;
	public PageBean getOrderPage(int status, int pageNumber) throws Exception;
	public Boolean updateCustOrderStatus(Long id, Integer status) throws Exception;
	public Boolean submitCustOrder(CustOrderBean custOrder) throws Exception;
}
